// //首先，创建字符串的两种方法
// let stringA = new String('string');
// let stringB = 'string';
// console.log(typeof stringA);  //object
// console.log(typeof stringB);  //string
// //注意通过构造函数（如 new String("string")）创建出来的是封装了基本类型值（如 "string"）的封装对象，
// //同时字符串的方法并不改变原字符串的值，而是返回一个新字符串
//
// //charAt：返回一个字符串中指定位置的字符
// let str = 'jueJin';
// console.log(str.charAt(2))  //e
//
// //concat：连接两个字符串，返回新的字符串
// let str = 'zhangsan';
// let str2 = str.concat(' juejin');
// console.log(str2);  //zhangsan juejin
//
// //indexOf:返回某个指定字符在字符串中首次出现的位置
// let str = 'juejin';
// let n = str.indexOf('i');
// console.log(n);   //4
//
// //lastIndexOf：从后往前搜索，其他与indexOf一样
// let str = 'juejin';
// let n = str.lastIndexOf('j');
// console.log(n);   //3
//
// // includes查询一个字符串中是否包括指定的字符子串
// let str = 'zhangsan';
// console.log(str.includes('san')) //true
//
// // match：一般用来找一个或多个正则表达式的匹配，返回值为一个数组，里面有所有匹配的值
// let str = 'zhangsan123 juejin456'
// console.log(str.match(/\d/g));  //[ '1', '2', '3', '4', '5', '6' ]
//
// // repeat：复制字符串指定次数
// let str = 'juejin';
// console.log(str.repeat(3));  //juejinjuejinjuejin
//
// // replace：查找匹配的并替换，一般与正则表达式集合。
// let str = 'juejin';
// let str2 = str.replace(/jue/, 'zhangsan ');
// console.log(str2);  //zhangsan jin
//
// // search：一般与正则表达式结合，查找某个值，查到了返回查到的索引值，未查到返回-1
// let str = 'juejin123';
// let n = str.search(/\d/);
// console.log(n)  //6
//
// // slice, substring：用来截取字符串的某个部分，参数为起始索引和结束索引+1，并返回新的。
// let str = 'juejin';
// let str2 = str.slice(3, 6);
// let str3 = str.substring(3, 6);
// console.log(str2, str3);   //jin jin
// slice和substring区别：
// 当接收的参数是负数时
// slice会将它字符串的长度与对应的负数相加，substring则干脆将负参数都直接转换为0
// let str = 'juejin';
// console.log(str.slice(-2));  //in
// console.log(str.substring(-2));  //juejin
//
// // substr：用来截取字符串的某个部分，参数为起始索引和个数，并返回新的。
// let str = 'juejin';
// let str2 = str.substr(3, 3)
// console.log(str2);  //jin
//
// // split：把字符串以指定要去分割成字符串数组
// let str = 'zhangsan juejin';
// console.log(str.split(' '));  //[ 'zhangsan', 'juejin' ]
//
// // startsWith：检测字符串是否以指定字符串开头
// let str = 'kerwin love';
// console.log(str.startsWith('kerwin')); //true
//
// toLowerCase,toUpperCase：将字符串转换大小写
// let str = 'jueJin';
// console.log(str.toLowerCase());  //juejin
// console.log(str.toUpperCase());  //JUEJIN
//
// // trim：去除字符串两端的空格
// let str = '  jue  jin  ';
// console.log(str.trim());  //jue  jin
//
// // parseInt：解析一个字符串，返回整数，第二个参数为解析的数字的基数。
// let num = '101';
// console.log(parseInt(num, 2));  //5
//
// Number
//
// //isFinite：检测传入的参数是否是一个有穷数
// let num = 123
// console.log(Number.isFinite(num));  //true
//
// // toExponential：转换成指数计数法,参数为小数位数
// let num = 5.21;
// console.log(num.toExponential(1));  //5.2e+0
//
// //toFixed：保留x位小数,并转换成字符串
// let nums = 5.213;
// let res = nums.toFixed(1)
// console.log(res);  //5.2
// console.log(typeof res);  //string
//
// // toPrecision：变成指定长度，并转换成字符串
// let num = 133.520;
// console.log(num.toPrecision(3))  //134
//
// // toString：把数字转换成字符串，参数为转换进制
// let num = 101;
// console.log(num.toString(8));  //101
